#ifndef __BGOD_LIGHT_SOURCE_H__
#define __BGOD_LIGHT_SOURCE_H__

#include "bgod.h"
#include "object.h"

using BGOD::LightSource;
using BGOD::Object;
using BGOD::Point;
using BGOD::Vector;

class LightSource : public Object
{

	public:

	    static void setUp();
	    static void tearDown();

	    static void ambientLight(Point color);
	    static void ambientLight(float r, float g, float b);

	    enum _LightTypes {
            DIRECTED = 0,
            POSITIONED = 1
        };

        LightSource() : Object() { }
	    LightSource(Point &c, Point newColor, int newId, int newType);
	    virtual ~LightSource () { };

	    void draw();
        virtual void sendEventsPreCollision() {}
        virtual void sendEventsPosCollision() {}

	    inline unsigned char getType() { return type; }
	    inline unsigned char getId() { return id; }

    private:

	    bool validLightSource();

		GLenum id;
		GLenum type;
};

#endif /* __BGOD_LIGHT_SOURCE_H__ */

